import 'dart:io';

void main() {
  // List泛型
  List<int> list = [1, 2, 3, 4];
  print(list);
  // Map泛型
  Map userMap = {'name': 'jack', 'age': 18};
  print(userMap);
  Map<String, String> goodsMap = {'name': '电脑', 'peice': '199.99'};
  print(goodsMap);
  // 函数泛型
  String str = getStr('Dart');
  print(str);
  // Future泛型
  futureStr().then((result) {
    print(result);
  }).catchError((error) {
    print(error);
  });
}

// 基于泛型封装
getStr<T>(T params) {
  return params;
}

Future<String> futureStr() {
  return Future<String>(() {
    sleep(Duration(seconds: 3));
    return 'FutureStr';
  });
}
